#!/bin/bash

if GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null); then
    TOP_DIR="$GIT_ROOT"
else
    SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
    TOP_DIR="$SCRIPT_DIR"
fi

export ZSH="$TOP_DIR"

install_zsh() {
  bash "$ZSH"/scripts/install_zsh.sh
}

update_zsh() {
   bash "$ZSH"/scripts/update_zsh.sh
}

# 显示帮助信息
show_help() {
    echo "用法: $0 [选项]"
    echo "  选项:"
    echo "    -i    执行安装 zsh 操作"
    echo "    -u    执行更新 zsh 操作"
    echo "    -h    显示帮助信息"
}

# 主函数（处理参数）
main() {
    # 解析命令行参数
    while getopts "iuh" opt; do
        case $opt in
            i)
                install_zsh
                exit 0
                ;;
            u)
                update_zsh
                exit 0  # 执行后退出
                ;;
            h)
                show_help  # 显示帮助
                exit 0
                ;;
            \?)
                # 处理无效选项：提示错误并显示帮助
                echo "错误：无效的选项 -$OPTARG" >&2
                show_help
                exit 1
                ;;
        esac
    done

    # 检查是否有多余的非选项参数
    shift $((OPTIND - 1))
    if [ $# -ne 0 ]; then
        echo "错误：多余的参数 '$*'" >&2
        show_help
        exit 1
    fi

    # 未输入任何参数时：根据~/.zshrc是否存在判断操作
    # （核心逻辑保留：-f "$HOME/.zshrc"）
    if [ -f "$HOME/.zshrc" ]; then
        echo "未指定参数，检测到 ~/.zshrc 已存在，执行更新..."
        update_zsh
    else
        echo "未指定参数，未检测到 ~/.zshrc ，执行安装..."
        install_zsh
    fi
    exit 0
}

# 调用主函数
main "$@"
